It would appear you would need to redefine the resource as a Bonus resource instead of a luxury or strategic resource.
Control over whether the Harvest Button is available is made in
C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization VI\Base\Assets\UI\Panels\UnitPanel.lua, and the relevant line appears to be:
Code:
local bCanStart, tResults = UnitManager.CanStartOperation( pUnit, actionHash, nil, true );
"pUnit" is the designation for the individual unit being tested at that time for the available actions to display, and "actionHash" appears to be the ID# for the "operation" from table <UnitOperations> (OperationType="UNITOPERATION_HARVEST_RESOURCE"). It isn't clear as yet what the final boolean argument "true" is for.
The command
UnitManager.CanStartCommand(args) is an lua method that appears to ask the game's DLL* whether a specific unit can perform a specified operation at any given plot at any given point within the game. This would appear to be giving 'false' for whether UNITOPERATION_HARVEST_RESOURCE can be performed on luxury and strategic resources, resulting in the action not even being available.
The relevant portion of the
UnitPanel.lua looks through all the rows in the table <UnitOperations> and all the rows in the table <UnitCommands> to determine what buttons are available for a given unit at that time.
I haven't tried to chase down whether there is a District Placement lua or whether all the enabling/disabling of Districts is being done directly in the game's DLL.
It would probably be
possible to re-write the code within
UnitPanel.lua to allow harvesting of luxuries and strategic resources, but this would take some labor, and may cause various sorts of imbalance or non-anticipated results in-game.
* to which we currently have no access
------------------------------------------
A search througth the game's xml files found nothing that specifies RESOURCECLASS_STRATEGIC or RESOURCECLASS_LUXURY cannot be harvested. So the limitation has to be within the game's lua files or directly in the game's DLL.
RESOURCECLASS_LUXURY for example is referenced in several places but is never actually defined anywhere that an AgentRansack search finds within the game's xml files.