{"id":"state-has-get-read-api","text":"`ftl.state.has(key)` checks if a resource exists in the state file and `ftl.state.get(key)` retrieves its metadata dict. Used to skip provisioning on re-runs and to look up IPs for re-registration.","truth_value":"IN","source":"repo:ftl2-agentcraft/ftl2_agentcraft/scripts/sandbox.py","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"if ftl.state.has(config.name):\n    resource = ftl.state.get(config.name)\n    ip = resource[\"ipv4\"][0]\n    log(f\"Already provisioned at {ip}\")\nelse:\n    result = await ftl.local.community.general.linode_v4(...)\n    ip = result[\"instance\"][\"ipv4\"][0]\n    ftl.state.add(config.name, {\n        \"provider\": \"linode\",\n        \"ipv4\": result[\"instance\"][\"ipv4\"],\n    })"},"explanation":{"steps":[{"node":"state-has-get-read-api","truth_value":"IN","reason":"premise"}]}}