PluginManifestValidator
Validates a Milpa plugin manifest (`milpa.json`) against the shape defined by `schema/milpa-plugin.schema.json` (capability-spec.md §3). Hand-rolled (no JSON-schema library), covering the rules that matter: required top-level fields, a composer-style `name`, a semver `version`, and the shape of every capability record (canonical `capabilities.*`) or legacy FQCN (`contracts.*`). Ported 1:1 from `scripts/library/validate-plugin-manifest.php` (B5 / T011).
PluginManifestValidator::validate()
public function validate(string $path): Milpa\DevTools\Validators\ManifestValidationResultValidates the `milpa.json` manifest at `$path` and returns every shape error found.
Parameters
| Name | Type | Description |
|---|---|---|
| $path | string |