ek9_query_package
Answers first: status, packageCount, then packages[] {name, version, description, license, tags, publishable, deps, devDeps, excludeDeps, capabilities, sourceLocation} - declared, not resolved.
When to use it
'What does the package directive say - name, version, deps, capabilities, publishable' is one call with no arguments.
When not to use it
- only the version string (use
ek9_query_package_version, orek9_versionfor the EK9 compiler binary's version) - the RESOLVED transitive dependency tree, not the declared list (use
ek9_query_dependency_tree) - module-level (intra-package) imports, not package-level deps (use
ek9_query_module_dependencies) - MODIFYING deps (use
ek9_add_dependency/ek9_remove_dependency)
Details
Each entry carries name, version, description, license, tags, publishable, deps/devDeps/excludeDeps (declared, NOT resolved), capabilities (compare against actual use via ek9_query_capability_usage), and sourceLocation {file, line} for jump-to-edit. Works at any phase — the directive is read from source as soon as parsing completes; a module whose re-parse fails is silently skipped, not errored. The snapshot is static per session unless the directive is edited — cache and reuse.
Arguments
None of its own.