{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://neon-sprawl.local/schemas/contract-seed.json", "title": "ContractSeed", "description": "Inputs for contract issuance (POST …/contracts/issue body or audit record). Validated when HTTP wiring lands (NEO-147+). See docs/decomposition/modules/E7_M4_ContractMissionGenerator.md.", "type": "object", "additionalProperties": false, "required": ["playerId", "templateId", "seedBucket"], "properties": { "playerId": { "type": "string", "minLength": 1, "description": "Target player id for deterministic contractInstanceId suffix." }, "templateId": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$", "description": "Contract template id from content/contracts; omit selection logic uses band + standing filters." }, "seedBucket": { "type": "string", "minLength": 1, "description": "Deterministic rotation bucket (date string or client counter) for audit and instance id hashing." }, "zoneDifficultyBand": { "type": "integer", "minimum": 1, "description": "Optional issue-time band override; prototype defaults to 1 when omitted." } } }