ListTools is exercised once (internal/server/record_test.go:53-74) and asserts only the two tool names and the count. No test reads back default, minimum, maximum, enum, or required from either schema.
The schema is the contract callers introspect, and the project's Go conventions make publishing constraints there — rather than in handler code — a rule. A regression that drops limit's maximum, loses scope_kind's enum, or flips a field to required is caller-visible and passes the suite today, because handler behavior is unchanged.
Related gaps: limit's maximum: 500 has no over-max case (only the floor is covered, review_test.go:280-291), and the snapshot cmd layer — the os.Args[1] dispatch, the NArg != 1 refusal, --config — is untested.
ListToolsis exercised once (internal/server/record_test.go:53-74) and asserts only the two tool names and the count. No test reads backdefault,minimum,maximum,enum, orrequiredfrom either schema.The schema is the contract callers introspect, and the project's Go conventions make publishing constraints there — rather than in handler code — a rule. A regression that drops
limit'smaximum, losesscope_kind's enum, or flips a field to required is caller-visible and passes the suite today, because handler behavior is unchanged.Related gaps:
limit'smaximum: 500has no over-max case (only the floor is covered,review_test.go:280-291), and thesnapshotcmd layer — theos.Args[1]dispatch, theNArg != 1refusal,--config— is untested.