PREFIX dcterms:    <http://purl.org/dc/terms/>
PREFIX doap:       <http://usefulinc.com/ns/doap#>
PREFIX earl:       <http://www.w3.org/ns/earl#>
PREFIX touchstone: <https://example.org/touchstone/vocab#>

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-safe>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/pagination#pagination-next-page>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-unadvertised-type-refused>
] .

<https://example.org/touchstone/test/lws10/core/containers#delete-non-empty-container-409>
        a                    earl:TestCase;
        dcterms:title        "A non-recursive DELETE of a non-empty container is refused with 409 and deletes nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/delete-non-empty-container-409-depth> .

<https://example.org/touchstone/test/lws10/core/containers#createContainer-type-link>
        a                    earl:TestCase;
        dcterms:title        "The 201 for a new container states its type";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-post-201-location-links> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-inbox-notified>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-if-modified-since-304>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-token-types-are-uris>
        a                    earl:TestCase;
        dcterms:title        "Every subject token type the metadata advertises is a URI";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-metadata-subject-token-types> , <https://example.org/touchstone/req/lws10-core/authn-suite-token-type-uri> .

<https://example.org/touchstone/test/lws10/core/containers#delete-container-recursive-deep>
        a                    earl:TestCase;
        dcterms:title        "Where supported, a recursive DELETE removes a whole tree, its linksets, and its listing entry";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/delete-removes-from-parent-listing> , <https://example.org/touchstone/req/lws10-core/linkset-lifecycle-tied-to-resource> , <https://example.org/touchstone/req/lws10-core/delete-non-empty-container-409-depth> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-unrecognized-page-link>
        a                    earl:TestCase;
        dcterms:title        "A page link the server does not recognize is answered 404 or 410";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/expired-page-404-410> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#getContainer-private-unauthorized>
        a                    earl:TestCase;
        dcterms:title        "An anonymous request for a protected container is refused with 401 and a conforming challenge";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-client-resource-metadata-same-origin> , <https://example.org/touchstone/req/lws10-core/authz-401-www-authenticate-challenge> .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-lws-json>
        a                    earl:TestCase;
        dcterms:title        "A delivery is a POST to the inbox with an application/lws+json body";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/delivery-lws-json> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-content-types-identical>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-endpoint-is-container>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#storage-root-same-origin>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#data-resource-accept-ranges>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-signed>
        a                    earl:TestCase;
        dcterms:title        "Deliveries are signed with HTTP Message Signatures";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/delivery-signed> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-authenticated-agent>
] .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-expired-id-token>
        a                    earl:TestCase;
        dcterms:title        "An expired ID Token is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-openid/validation-locate-issuer-service-and-verify> .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-missing-type-refused>
        a                    earl:TestCase;
        dcterms:title        "A subscription request without a type is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/subscription-request-type> , <https://example.org/touchstone/req/lws10-core/subscription-request-required-fields> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-type-not-array-rejected>
] .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-untrusted-issuer>
        a                    earl:TestCase;
        dcterms:title        "An ID Token from a provider the subject never named is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-openid/validation-locate-issuer-service-and-verify> , <https://example.org/touchstone/req/lws10-authn-openid/validation-dereference-subject-cid> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-unsupported-format-rejected>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-expires-supported>
        a                    earl:TestCase;
        dcterms:title        "A webhook subscription request with an expires datetime is accepted";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/response-expires-optional> , <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-expires-optional> , <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-type-and-fields> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#contained-resource-format>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#patch-json-patch-atomic>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#protected-resource-metadata-data-resource>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-identifier-types>
        a                    earl:TestCase;
        dcterms:title        "The metadata advertises the subject identifier types it accepts";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-metadata-subject-identifier-types> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#container-listing-filtered-metadata>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-audience-excludes-as>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential not addressed to this authorization server is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-audience-restriction-recommended> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/aud-includes-as> .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-alg-none>
        a                    earl:TestCase;
        dcterms:title        "An unsigned (alg none) ID Token is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-alg-not-none> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-wrong-audience-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-conneg>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/pagination#pagination-totalitems-all-pages>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-duplicate-groups>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-conneg-weighted>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-needs-create-in-destination>
        a                    earl:TestCase;
        dcterms:title        "An agent who may not create in the destination cannot move a resource there";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/security-move-privilege-combination> , <https://example.org/touchstone/req/lws10-core/move-authorization-delete-and-create> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-alg-none-rejected>
        a                    earl:TestCase;
        dcterms:title        "An unsigned (alg none) access token is refused with 401 and invalid_token";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> , <https://example.org/touchstone/req/lws10-core/authz-jwt-signature-jwks-rotation> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-type>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-advertises-patch>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#createDataResource>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-notification>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-issued-in-future-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token whose iat lies in the future is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-referenced-method>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-unknown-key-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token signed by a key the issuer never published is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> , <https://example.org/touchstone/req/lws10-core/authz-jwt-signature-jwks-rotation> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-create>
        a                    earl:TestCase;
        dcterms:title        "A storage controller creates an access grant with POST and reads it back";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/access-storage-uri> , <https://example.org/touchstone/req/lws10-core/access-type-values> , <https://example.org/touchstone/req/lws10-core/access-endpoints-jsonld-payloads> , <https://example.org/touchstone/req/lws10-core/access-post-location-header> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-conditional-412>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-put-stale-if-match-412>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'bob cannot read it (otherwise access to the container reaches its members, and this test does not apply)' does not hold: status code expected 403 or 404, got 200";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-not-delivered-for-unreadable-resource>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-bad-signature>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signature-verifies>
        a                    earl:TestCase;
        dcterms:title        "A signed delivery verifies with the published key, and its Content-Digest matches the body";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/receiver-verification-steps> , <https://example.org/touchstone/req/lws10-notifications-webhook/inbox-verifies-signature> , <https://example.org/touchstone/req/lws10-notifications-webhook/signature-covered-components> , <https://example.org/touchstone/req/lws10-notifications-webhook/signing-key-published> .

<https://example.org/touchstone/test/lws10/core/moving#move-container>
        a                    earl:TestCase;
        dcterms:title        "A storage that moves containers moves one, with what it holds";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-containment-atomic> , <https://example.org/touchstone/req/lws10-core/capability-move-applies-to> , <https://example.org/touchstone/req/lws10-core/move-containers-applies-to> .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-missing-subject-token>
        a                    earl:TestCase;
        dcterms:title        "Token exchange without a subject token is refused with invalid_request";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-error-rfc6749> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-subject-token-param> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-key-not-for-authentication>
        a                    earl:TestCase;
        dcterms:title        "A credential signed with a key the document does not list for authentication is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-valid-credential>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-key-revoked>
        a                    earl:TestCase;
        dcterms:title        "A credential signed with a revoked verification method is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-by-type>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-stays-linkset>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-unreadable-topic-refused>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-listed>
        a                    earl:TestCase;
        dcterms:title        "The NotificationService endpoint lists the subscriber's webhook subscriptions as an LWS container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-listing-container> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-delete>
        a                    earl:TestCase;
        dcterms:title        "A Delete in a subscribed container is delivered";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-object-id> , <https://example.org/touchstone/req/lws10-core/notification-activity-type> , <https://example.org/touchstone/req/lws10-core/notification-activity-types-supported> .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-get-links-storageDescription>
        a                    earl:TestCase;
        dcterms:title        "GET and HEAD of a container link to the storage it belongs to";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/link-storage-on-responses> , <https://example.org/touchstone/req/lws10-core/storage-description-link-header> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#index-services-advertised>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-token-types>
        a                    earl:TestCase;
        dcterms:title        "The metadata advertises the subject token types it accepts";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-metadata-subject-token-types> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-document-shape>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-vary-accept>
] .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-root-is-container>
        a                    earl:TestCase;
        dcterms:title        "The storage description's StorageRoot service is a container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/storage-description-storageroot-service> .

<https://example.org/touchstone/test/lws10/core/moving#discovery-move-capability>
        a                    earl:TestCase;
        dcterms:title        "A MoveResource capability's appliesTo and preservesIdentifier are well formed";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/capability-move-preserves-identifier> , <https://example.org/touchstone/req/lws10-core/capability-move-applies-to> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#protected-resource-metadata>
        a                    earl:TestCase;
        dcterms:title        "The challenge's resource_metadata is the protected resource metadata of the container requested";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-client-prm-resource-matches> , <https://example.org/touchstone/req/lws10-core/authz-prm-authorization-servers> , <https://example.org/touchstone/req/lws10-core/authz-prm-conforms-rfc9728> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-valid-credential>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-missing-topic-refused>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'replace it with a resource of type Beta, its Link headers replacing its linkset (otherwise the server does no combined updates, and this test does not apply)' does not hold: header Preference-Applied matches expected matches /(?i)(^|[,\\s])set-linkset\\s*($|[,;=])/, got absent";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-reflects-update>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-format>
        a                    earl:TestCase;
        dcterms:title        "A format constraint lets a grant reach only resources of the listed media types";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-left-operands> .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-put-405-when-unsupported>
        a                    earl:TestCase;
        dcterms:title        "A linkset that does not advertise PUT refuses it with 405";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-optional-methods-advertised> , <https://example.org/touchstone/req/lws10-core/linkset-put-405-if-unsupported> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-update>
        a                    earl:TestCase;
        dcterms:title        "An Update to a subscribed data resource is delivered";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-object-id> , <https://example.org/touchstone/req/lws10-core/notification-activity-type> , <https://example.org/touchstone/req/lws10-core/notification-activity-types-supported> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-extra-properties-accepted>
        a                    earl:TestCase;
        dcterms:title        "A grant with an extra property, and without the optional inbox and constraint, is accepted and takes effect";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-optional> , <https://example.org/touchstone/req/lws10-core/access-inbox-optional> , <https://example.org/touchstone/req/lws10-core/access-extra-properties-allowed> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-filter>
        a                    earl:TestCase;
        dcterms:title        "A describedby link in a resource's linkset can be searched on";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/relations-may-be-indexed> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-missing-content-type-rejected>
        a                    earl:TestCase;
        dcterms:title        "A search without a Content-Type is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/query-content-type-required> , <https://example.org/touchstone/req/lws10-index/missing-content-type-400> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-container-into-itself-refused>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-alg-none>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-deactivated>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-claims-mismatch>
] .

<https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-invalid-signature>
        a                    earl:TestCase;
        dcterms:title        "A SAML assertion altered after signing is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-saml/validation-signature> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-empty-key-absent>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#createDataResource-type-link>
        a                    earl:TestCase;
        dcterms:title        "The 201 for a new data resource states its type";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-post-201-location-links> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-bad-signature-rejected>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-notification>
        a                    earl:TestCase;
        dcterms:title        "A move is announced as one Move activity from the container left to the container joined";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-notification-single-activity> , <https://example.org/touchstone/req/lws10-core/notification-activity-move> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-native-classes>
        a                    earl:TestCase;
        dcterms:title        "lws:DataResource and lws:Container filter on what the resource itself is";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/types-from-link-headers> , <https://example.org/touchstone/req/lws10-index/type-key-supported> , <https://example.org/touchstone/req/lws10-index/type-filter> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-write-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-put-405-when-unsupported>
] .

<https://example.org/touchstone/test/lws10/core/containers#delete-container-recursive>
        a                    earl:TestCase;
        dcterms:title        "Where supported, DELETE with Depth infinity removes a container and its contents";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/delete-non-empty-container-409-depth> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'the storage's MoveResource says it preserves identifiers (otherwise this test does not apply)' does not hold: json /capability some expected some element satisfies [{\"pointer\":\"/type\",\"hasValue\":\"MoveResource\"},{\"pointer\":\"/preservesIdentifier\",\"equals\":true}], got [{\"type\":\"MoveResource\",\"appliesTo\":[\"DataResource\",\"Container\"],\"preservesIdentifier\":false}]";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-keeps-identifier-content-and-links>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-missing-resource>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-claims-mismatch>
        a                    earl:TestCase;
        dcterms:title        "A credential whose client_id differs from sub and iss is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> .

<https://example.org/touchstone/test/lws10/core/moving#move-updates-container-etags>
        a                    earl:TestCase;
        dcterms:title        "A move changes the ETag of the container left and of the container joined";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-containment-atomic> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-server-metadata-well-known>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-from-link-header>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-if-modified-since-304>
        a                    earl:TestCase;
        dcterms:title        "An unchanged data resource answers If-Modified-Since with 304, a changed one with 200";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conditional-requests-supported> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-conneg-vary>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-in-subcontainer>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#getContainer-private-unauthorized>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#create-in-missing-container-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-missing-type-refused>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-json-patch>
        a                    earl:TestCase;
        dcterms:title        "A JSON Patch adds a user-managed link to a linkset";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-patch-json-patch> .

<https://example.org/touchstone/test/lws10/core/data_resources#post-to-non-container-405>
        a              earl:TestCase;
        dcterms:title  "POST to a data resource is refused with 405 and an Allow header" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-expired>
] .

<https://example.org/touchstone/test/lws10/core/containers#contained-resource-size-modified>
        a                    earl:TestCase;
        dcterms:title        "Listings give a data resource member its size in bytes and a modified time";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/contained-description-recommended-members> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-from-link-header>
        a                    earl:TestCase;
        dcterms:title        "A describedby link sent as a Link header on create is searchable like one in the linkset";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/relations-may-be-indexed> , <https://example.org/touchstone/req/lws10-index/types-from-link-headers> , <https://example.org/touchstone/req/lws10-index/relation-sources-identical> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#update-changes-strong-etag>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-create>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#data-resource-head-parity>
        a                    earl:TestCase;
        dcterms:title        "HEAD of a data resource returns GET's headers without a body";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/containment-rel-up-get-head> , <https://example.org/touchstone/req/lws10-core/head-parity-with-get> .

<https://example.org/touchstone/test/lws10/core/pagination#pagination-totalitems-all-pages>
        a                    earl:TestCase;
        dcterms:title        "totalItems counts the whole container on every page";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-200-totalitems-all-pages> .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-put-stale-if-match-412>
        a              earl:TestCase;
        dcterms:title  "A PUT carrying a stale entity tag is refused with 412 and changes nothing" .

<https://example.org/touchstone/test/lws10/core/containers#contained-resource-type-values>
        a                    earl:TestCase;
        dcterms:title        "Listings type each member as a Container or a DataResource";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/contained-resource-type-values> .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-stale-validator-200>
        a              earl:TestCase;
        dcterms:title  "A conditional GET yields 304 only when the validator still matches" .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-retried>
        a                    earl:TestCase;
        dcterms:title        "A delivery the inbox answers with 503 is tried again";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/delivery-retry-optional> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-data-resource>
] .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-unreadable-topic-refused>
        a                    earl:TestCase;
        dcterms:title        "A subscription naming any resource the subscriber cannot read is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/security-notification-access-control> , <https://example.org/touchstone/req/lws10-core/subscription-authorization-on-create> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-expired-token-rejected>
        a                    earl:TestCase;
        dcterms:title        "An expired access token is refused with 401 and error invalid_token";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-invalid-token-401-error-param> , <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

<https://example.org/touchstone/test/lws10/core/data_resources#create-in-missing-container-rejected>
        a                    earl:TestCase;
        dcterms:title        "POST to a container that does not exist is refused and creates nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-post-missing-container-404> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-bad-element-rejected>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-unsupported-format-rejected>
        a                    earl:TestCase;
        dcterms:title        "A search in an unsupported query format is rejected with 415";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/unsupported-format-415> .

<https://example.org/touchstone/test/lws10/core/data_resources#create-server-managed-links-protected>
        a                    earl:TestCase;
        dcterms:title        "A client Link header cannot override the server-managed linkset link";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-server-managed-metadata-protected> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-retried>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-safe>
        a                    earl:TestCase;
        dcterms:title        "A search changes nothing, and repeating it gives the same result";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/query-safe-idempotent> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-exp>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-too-complex>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-not-acceptable>
        a                    earl:TestCase;
        dcterms:title        "A search whose Accept excludes every format the server can produce is rejected with 406";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/search-default-containerpage> , <https://example.org/touchstone/req/lws10-index/not-acceptable-406> .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-issued-token-accepted-by-storage>
        a                    earl:TestCase;
        dcterms:title        "The storage accepts an access token its authorization server issued";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-jwt-signature-jwks-rotation> , <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signature-verifies>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-and-or>
        a                    earl:TestCase;
        dcterms:title        "Type groups are ANDed and the IRIs inside a group ORed";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/type-key-supported> , <https://example.org/touchstone/req/lws10-index/type-filter> .

<https://example.org/touchstone/test/lws10/core/data_resources#patch-json-patch-baseline>
        a                    earl:TestCase;
        dcterms:title        "PATCH applies JSON Patch to a JSON data resource";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/patch-json-patch-baseline> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "the target does not declare SamlTrust";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-valid-assertion>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-type-from-link-header>
        a                    earl:TestCase;
        dcterms:title        "A type declared only by Link rel=type on create is searchable";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/types-from-link-headers> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-unsupported-format-accept-query>
        a                    earl:TestCase;
        dcterms:title        "A 415 from the search lists the accepted formats in Accept-Query";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/unsupported-format-accept-query> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-left-operands-accepted>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-reflects-update>
        a                    earl:TestCase;
        dcterms:title        "After an update changes a resource's types, the search follows";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/types-from-link-headers> , <https://example.org/touchstone/req/lws10-index/reflect-change-bounded> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-update>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-valid>
        a                    earl:TestCase;
        dcterms:title        "Token exchange issues an RFC 9068 access token for the storage";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-validate-before-issuing> , <https://example.org/touchstone/req/lws10-core/authz-access-token-client-id-claim> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-resource-param> , <https://example.org/touchstone/req/lws10-core/authz-access-token-exp-short-lived> , <https://example.org/touchstone/req/lws10-core/authz-access-token-jti-claim> , <https://example.org/touchstone/req/lws10-core/authz-token-response-rfc6749-rfc9068> , <https://example.org/touchstone/req/lws10-core/authz-access-token-sub-claim> , <https://example.org/touchstone/req/lws10-core/authz-access-token-iat-claim> , <https://example.org/touchstone/req/lws10-core/authz-access-token-aud-claim> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-grant> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-subject-token-param> , <https://example.org/touchstone/req/lws10-core/authz-access-token-iss-claim> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-bad-signature>
        a                    earl:TestCase;
        dcterms:title        "A credential with a corrupted signature is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

<https://example.org/touchstone/test/lws10/core/data_resources#create-post-twice-distinct>
        a                    earl:TestCase;
        dcterms:title        "Two identical POSTs create two resources, at distinct URIs";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/uri-independent-of-hierarchy> , <https://example.org/touchstone/req/lws10-core/create-post-not-idempotent> .

<https://example.org/touchstone/test/lws10/core/containers#contained-resource-format>
        a                    earl:TestCase;
        dcterms:title        "Listings give each data resource member its media type as format";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/read-container-listing-member-metadata> , <https://example.org/touchstone/req/lws10-core/contained-format-for-dataresources> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-issuer>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential without an iss claim is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> , <https://example.org/touchstone/req/lws10-core/authn-credential-tamper-evident-claims> , <https://example.org/touchstone/req/lws10-core/authn-issuer-claim-uri> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-malformed-json-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#create-post-twice-distinct>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-up-not-redirected>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-accept-query-advertised>
        a                    earl:TestCase;
        dcterms:title        "OPTIONS on the search endpoint advertises its query formats in Accept-Query";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/accept-query-no-disclosure> , <https://example.org/touchstone/req/lws10-index/accept-query-advertised> .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description-default-media-type>
        a                    earl:TestCase;
        dcterms:title        "Without content negotiation the storage URI answers application/lws+cid";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/storage-uri-returns-lws-cid-document> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-claims-mismatch>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-invalid-destination-refused>
        a                    earl:TestCase;
        dcterms:title        "A move to anything but an existing container, or away from every container, is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-destination-existing-container> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#deleteDataResource-unauthorized>
        a                    earl:TestCase;
        dcterms:title        "An anonymous DELETE is refused with 401 and deletes nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-401-www-authenticate-challenge> , <https://example.org/touchstone/req/lws10-core/delete-401-403-404-semantics> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-missing-subject-token>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-container-304>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#createContainer>
] .

<https://example.org/touchstone/test/lws10/core/containers#container-head-parity>
        a                    earl:TestCase;
        dcterms:title        "HEAD of a container returns GET's headers without a body";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/head-parity-with-get> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-read-rejected>
] .

<https://example.org/touchstone/harness>
        a              earl:Software;
        doap:name      "Touchstone";
        doap:revision  "0.1.0-SNAPSHOT" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/pagination#pagination-last-page>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-removed-with-resource>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-total-items-accurate>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signature-components>
        a                    earl:TestCase;
        dcterms:title        "A signed delivery covers the required components and names created and keyid";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/signature-input-created-keyid> , <https://example.org/touchstone/req/lws10-notifications-webhook/signature-covered-components> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-json-patch>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-not-shared>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-root-is-container>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signing-key-published>
        a                    earl:TestCase;
        dcterms:title        "The keyid of a signed delivery resolves to a published key in the storage description";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/storage-description-id-matches> , <https://example.org/touchstone/req/lws10-notifications-webhook/keyid-url-with-fragment> , <https://example.org/touchstone/req/lws10-notifications-webhook/signature-input-created-keyid> , <https://example.org/touchstone/req/lws10-notifications-webhook/signing-key-published> .

<https://example.org/touchstone/test/lws10/index/manifest#type-index-lists-readable-types>
        a                    earl:TestCase;
        dcterms:title        "The type index lists a type borne by a resource the client may read";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/reflect-change-bounded> , <https://example.org/touchstone/req/lws10-index/authorization-enforced> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-empty-group-rejected>
        a                    earl:TestCase;
        dcterms:title        "An empty group is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/malformed-filter-400> , <https://example.org/touchstone/req/lws10-index/empty-group-rejected> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-and-or>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-expired>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-preserves-server-links>
        a                    earl:TestCase;
        dcterms:title        "A patch that leaves out the server's links does not remove them";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-restricted-links-preserved> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-exp>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential without exp is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/exp-claim> .

<https://example.org/touchstone/test/lws10/core/pagination#pagination-first-page>
        a                    earl:TestCase;
        dcterms:title        "The first page of a container split into pages has rel=\"first\" and no rel=\"prev\"";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-first-page-flow> , <https://example.org/touchstone/req/lws10-core/pagination-200-totalitems-all-pages> , <https://example.org/touchstone/req/lws10-core/pagination-link-prev> , <https://example.org/touchstone/req/lws10-core/pagination-link-first> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-not-shared>
        a                    earl:TestCase;
        dcterms:title        "A search response is marked against reuse across clients";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/no-shared-cache> , <https://example.org/touchstone/req/lws10-index/responses-private> .

<https://example.org/touchstone/test/lws10/core/access_grants#readDataResource-public-read>
        a                    earl:TestCase;
        dcterms:title        "A data resource granted to the public can be read without credentials";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-assignee-uri-foaf-agent> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-cnf>
        a                    earl:TestCase;
        dcterms:title        "Relation values combine like type values: groups ANDed, nested arrays ORed";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/type-filter> , <https://example.org/touchstone/req/lws10-index/relations-may-be-indexed> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-type-from-link-header>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-signed>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-incomplete-refused>
        a                    earl:TestCase;
        dcterms:title        "An access grant missing a required property, or with a malformed one, is refused and grants nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-target-object> , <https://example.org/touchstone/req/lws10-core/policy-type-access-policy> , <https://example.org/touchstone/req/lws10-core/policy-assignee-required> , <https://example.org/touchstone/req/lws10-core/access-access-collection> , <https://example.org/touchstone/req/lws10-core/access-inbox-uri> , <https://example.org/touchstone/req/lws10-core/policy-action-required> , <https://example.org/touchstone/req/lws10-core/access-type-required> , <https://example.org/touchstone/req/lws10-core/access-access-required> , <https://example.org/touchstone/req/lws10-core/policy-type-required> , <https://example.org/touchstone/req/lws10-core/access-storage-required> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-document-id-mismatch>
        a                    earl:TestCase;
        dcterms:title        "A credential whose subject dereferences to a document with another id is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-dereference-sub-cid> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-service-advertised>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-claims-mismatch>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential whose client_id differs from sub and iss is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-client-id>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential without a client_id claim is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> , <https://example.org/touchstone/req/lws10-core/authn-credential-tamper-evident-claims> , <https://example.org/touchstone/req/lws10-core/authn-client-claim> .

<https://example.org/touchstone/test/lws10/core/containers#createContainer>
        a                    earl:TestCase;
        dcterms:title        "POST with a Container type link creates an empty container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/container-empty-items-array> , <https://example.org/touchstone/req/lws10-core/create-post-201-location-links> , <https://example.org/touchstone/req/lws10-core/create-container-type-link> .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-conditional-412>
        a                    earl:TestCase;
        dcterms:title        "A linkset PATCH with a failing precondition is refused with 412";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-precondition-failed-412> .

<https://example.org/touchstone/test/lws10/core/containers#container-lws-profile-turtle>
        a                    earl:TestCase;
        dcterms:title        "A container asked for as Turtle in the LWS profile answers with the same RDF as application/lws+json";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conneg-lws-profile-isomorphic> .

<https://example.org/touchstone/test/lws10/core/data_resources#readDataResource>
        a                    earl:TestCase;
        dcterms:title        "Reading a data resource returns its content, media type, ETag and the required links";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/link-storage-on-responses> , <https://example.org/touchstone/req/lws10-core/link-up-on-non-root-resources> , <https://example.org/touchstone/req/lws10-core/containment-rel-up-get-head> , <https://example.org/touchstone/req/lws10-core/read-type-distinction-metadata-links> , <https://example.org/touchstone/req/lws10-core/get-data-resource-content-range-etag> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-stops-after-revocation>
        a                    earl:TestCase;
        dcterms:title        "Once access to a resource is revoked, its notifications stop";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/security-notification-access-control> , <https://example.org/touchstone/req/lws10-core/subscription-authorization-on-delivery> , <https://example.org/touchstone/req/lws10-core/subscription-authorization-revoked> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#deleteDataResource-unauthorized>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-container-refused-without-container-support>
        a                    earl:TestCase;
        dcterms:title        "A storage whose MoveResource leaves out Container refuses to move a container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/capability-move-applies-to> , <https://example.org/touchstone/req/lws10-core/move-containers-applies-to> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-duplicate-groups>
        a                    earl:TestCase;
        dcterms:title        "Duplicate groups in a filter are ignored";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/duplicate-groups-ignored> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-lws-profile-turtle>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-wrong-issuer-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token from an untrusted issuer is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-access-token-iss-claim> , <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-vary-accept>
        a                    earl:TestCase;
        dcterms:title        "A search that negotiates its response format lists Accept in Vary";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/other-response-formats> , <https://example.org/touchstone/req/lws10-index/vary-accept> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'the storage describes no MoveResource capability (otherwise this test does not apply)' does not hold: json /capability none expected none element satisfies [{\"pointer\":\"/type\",\"hasValue\":\"MoveResource\"}], got [{\"type\":\"MoveResource\",\"appliesTo\":[\"DataResource\",\"Container\"],\"preservesIdentifier\":false}]";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-refused-without-capability>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-not-yet-valid-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token whose nbf lies in the future is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-extra-properties-accepted>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#discovery-move-capability>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#delete-container-recursive-deep>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-expired-id-token>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'the storage moves data resources but not containers (otherwise this test does not apply)' does not hold: json /capability some expected some element satisfies [{\"pointer\":\"/type\",\"hasValue\":\"MoveResource\"},{\"pointer\":\"/appliesTo\",\"optional\":true,\"none\":[{\"pointer\":\"\",\"matches\":\"^(https://www\\\\.w3\\\\.org/ns/lws#)?Container$\"}]}], got [{\"type\":\"MoveResource\",\"appliesTo\":[\"DataResource\",\"Container\"],\"preservesIdentifier\":false}]";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-container-refused-without-container-support>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#data-resource-range-unsatisfiable>
        a              earl:TestCase;
        dcterms:title  "A range beyond the end of a data resource is answered 416" .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-create>
        a                    earl:TestCase;
        dcterms:title        "An authenticated lws+json POST to the NotificationService creates a subscription";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/subscription-request-type> , <https://example.org/touchstone/req/lws10-core/subscription-request-topic> , <https://example.org/touchstone/req/lws10-core/subscription-response-subscription-url> , <https://example.org/touchstone/req/lws10-core/subscription-response-type> , <https://example.org/touchstone/req/lws10-core/subscription-response-lws-json> , <https://example.org/touchstone/req/lws10-core/subscription-create-post-lws-json> , <https://example.org/touchstone/req/lws10-core/subscription-request-additional-fields> , <https://example.org/touchstone/req/lws10-core/subscription-request-required-fields> , <https://example.org/touchstone/req/lws10-core/notification-suite-subscription-type-identifier> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#post-to-non-container-405>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-wrong-audience-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token minted for another storage is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-access-token-aud-claim> , <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-actor-omitted>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-index-omits-unreadable-type>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-no-match>
        a                    earl:TestCase;
        dcterms:title        "A type that matches nothing yields an empty result, not an error";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/search-default-containerpage> , <https://example.org/touchstone/req/lws10-index/no-match-not-error> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-unindexed-relation>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-needs-delete-of-resource>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-next-page>
        a                    earl:TestCase;
        dcterms:title        "Following a search result's rel=next yields the rest of the same result set";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-link-first> , <https://example.org/touchstone/req/lws10-index/result-item-id-type> , <https://example.org/touchstone/req/lws10-index/search-default-containerpage> .

<https://example.org/touchstone/test/lws10/index/manifest#index-services-advertised>
        a                    earl:TestCase;
        dcterms:title        "Each advertised Type Index or Type Search Service has a serviceEndpoint";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/service-endpoint> , <https://example.org/touchstone/req/lws10-index/service-advertised> , <https://example.org/touchstone/req/lws10-index/services-optional> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-filter>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-index-omits-unreadable-type>
        a                    earl:TestCase;
        dcterms:title        "The type index omits a type borne only by resources the client may not read";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/authorization-enforced> , <https://example.org/touchstone/req/lws10-index/no-existence-disclosure> , <https://example.org/touchstone/req/lws10-index/unauthorized-omitted> .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-delete-stale-if-match-412>
        a                    earl:TestCase;
        dcterms:title        "A DELETE carrying a stale entity tag is refused with 412 and deletes nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conditional-requests-supported> , <https://example.org/touchstone/req/lws10-core/delete-success-204-conditional> , <https://example.org/touchstone/req/lws10-core/delete-if-match-optional> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-create>
        a                    earl:TestCase;
        dcterms:title        "A Create in a subscribed container is delivered as a well-formed Notification";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-object> , <https://example.org/touchstone/req/lws10-core/notification-envelope-type> , <https://example.org/touchstone/req/lws10-core/notification-envelope-activity> , <https://example.org/touchstone/req/lws10-core/notification-activity-as2-conformance> , <https://example.org/touchstone/req/lws10-core/notification-activity-object-id> , <https://example.org/touchstone/req/lws10-core/notification-activity-published> , <https://example.org/touchstone/req/lws10-core/notification-activity-id> , <https://example.org/touchstone/req/lws10-core/notification-envelope-storage> , <https://example.org/touchstone/req/lws10-core/notification-activity-type> , <https://example.org/touchstone/req/lws10-core/notification-activity-types-supported> , <https://example.org/touchstone/req/lws10-core/notification-activity-object-type> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-actor-omitted>
        a                    earl:TestCase;
        dcterms:title        "Delivered activities omit the actor by default";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-optional-properties> , <https://example.org/touchstone/req/lws10-core/privacy-notification-actor-omitted> .

<https://example.org/touchstone/test/lws10/core/linksets#getLinkset>
        a                    earl:TestCase;
        dcterms:title        "The linkset a resource advertises is served as application/linkset+json with an ETag";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-etag-get-head> , <https://example.org/touchstone/req/lws10-core/linkset-media-type-json> , <https://example.org/touchstone/req/lws10-core/linkset-standalone-rfc9264> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-foreign-controller>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-stays-linkset>
        a                    earl:TestCase;
        dcterms:title        "A patch that would break the linkset document leaves a valid linkset behind";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-standalone-rfc9264> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'the listing is paginated and holds all five members on its page (otherwise this test does not apply)' does not hold: json /items/4 selects a value expected a value at /items/4, got nothing";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/pagination#pagination-single-page>
] .

<https://example.org/touchstone/test/lws10/core/containers#delete-empty-container>
        a                    earl:TestCase;
        dcterms:title        "Deleting an empty container returns 204 and removes it from its parent";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/containment-delete-atomic-items> , <https://example.org/touchstone/req/lws10-core/delete-success-204-conditional> .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-response>
        a                    earl:TestCase;
        dcterms:title        "A webhook subscription is answered with type WebhookSubscription and a subscription URL";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-type-identifier> , <https://example.org/touchstone/req/lws10-notifications-webhook/response-type-webhook> , <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-inbox-required> , <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-type-and-fields> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-at-members-ignored>
        a                    earl:TestCase;
        dcterms:title        "Filter members whose names begin with @ are ignored";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/at-members-ignored> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#getLinkset>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-key-revoked>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-delete>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-get-links-storageDescription>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-request-create>
        a                    earl:TestCase;
        dcterms:title        "An agent submits an access request with POST";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/access-type-values> , <https://example.org/touchstone/req/lws10-core/access-post-location-header> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-bad-signature-rejected>
        a                    earl:TestCase;
        dcterms:title        "An access token with a corrupted signature is refused with 401 and invalid_token";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-invalid-token-401-error-param> , <https://example.org/touchstone/req/lws10-core/authz-jwt-signature-jwks-rotation> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#create-in-missing-container-404>
] .

<https://example.org/touchstone/test/lws10/core/containers#container-conneg-weighted>
        a                    earl:TestCase;
        dcterms:title        "A container honours application/lws+json when the Accept header ranks it below a type it cannot serve";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conneg-lws-json-honored> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-endpoint-is-container>
        a                    earl:TestCase;
        dcterms:title        "The access grant endpoint is an LWS container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/access-services-advertised> , <https://example.org/touchstone/req/lws10-core/access-endpoints-are-lws-containers> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-missing-azp>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-missing-resource>
        a                    earl:TestCase;
        dcterms:title        "Token exchange without a resource parameter is refused with invalid_request";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-error-rfc6749> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-resource-param> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-relative-iri-rejected>
        a                    earl:TestCase;
        dcterms:title        "A type or relation value that is not an absolute IRI is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/invalid-iri-400> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-authorization-filtered>
        a                    earl:TestCase;
        dcterms:title        "A search omits resources the client may not read, and counts only those it may";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/derived-index-filtered> , <https://example.org/touchstone/req/lws10-index/counts-filtered> , <https://example.org/touchstone/req/lws10-index/authorization-enforced> , <https://example.org/touchstone/req/lws10-index/no-existence-disclosure> , <https://example.org/touchstone/req/lws10-index/unauthorized-omitted> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#protected-resource-metadata-data-resource>
        a                    earl:TestCase;
        dcterms:title        "A data resource's challenge names protected resource metadata of its own";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-client-prm-resource-matches> , <https://example.org/touchstone/req/lws10-core/authz-401-www-authenticate-challenge> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-index-lists-readable-types>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-structural-relation-not-indexed>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-relative-iri-rejected>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-document-shape>
        a                    earl:TestCase;
        dcterms:title        "An access grant reads back in the access data model, with every required property";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-action-required> , <https://example.org/touchstone/req/lws10-core/access-type-required> , <https://example.org/touchstone/req/lws10-core/policy-type-access-policy> , <https://example.org/touchstone/req/lws10-core/policy-target-object> , <https://example.org/touchstone/req/lws10-core/access-access-collection> , <https://example.org/touchstone/req/lws10-core/policy-assignee-required> , <https://example.org/touchstone/req/lws10-core/access-storage-required> , <https://example.org/touchstone/req/lws10-core/policy-type-required> , <https://example.org/touchstone/req/lws10-core/access-jsonld-context-lws-v1> , <https://example.org/touchstone/req/lws10-core/access-access-required> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-revoke>
        a                    earl:TestCase;
        dcterms:title        "Deleting an access grant withdraws the access it gave";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/access-endpoints-get-post-delete> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-bad-signature>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-inbox-notified>
        a                    earl:TestCase;
        dcterms:title        "A grant with an inbox is announced there";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/access-notification-delivery> , <https://example.org/touchstone/req/lws10-core/access-notification-data-model> , <https://example.org/touchstone/req/lws10-core/access-notification-events> , <https://example.org/touchstone/req/lws10-core/access-inbox-notifications> .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-ready-at-create>
        a                    earl:TestCase;
        dcterms:title        "The linkset a create names exists as soon as the resource does";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-post-201-location-links> , <https://example.org/touchstone/req/lws10-core/linkset-server-managed-atomic> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-relation-cnf>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#delete-empty-container>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-at-members-ignored>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-unknown-kid>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#updateDataResource-unauthorized>
        a                    earl:TestCase;
        dcterms:title        "An anonymous PUT is refused with 401 and changes nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-401-www-authenticate-challenge> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#getContainer-public-read>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-link-storage-on-data-resource>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-lws-profile-ld-json>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-delete-rejected>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-if-unmodified-since-412>
        a                    earl:TestCase;
        dcterms:title        "If-Unmodified-Since passes at the resource's Last-Modified and fails with 412 before it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conditional-requests-supported> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#createContainer-type-link>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-native-classes>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-document-id-mismatch>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-no-match>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-unknown-key-rejected>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-keeps-identifier-content-and-links>
        a                    earl:TestCase;
        dcterms:title        "A storage that preserves identifiers keeps a moved resource's URI, content and links";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-preserves-content-and-links> , <https://example.org/touchstone/req/lws10-core/capability-move-preserves-identifier> , <https://example.org/touchstone/req/lws10-core/move-identifier-preserved> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#delete-container-recursive>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-not-acceptable>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-wrong-issuer-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-reflects-delete>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-stale-validator-200>
] .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description>
        a                    earl:TestCase;
        dcterms:title        "The storage URI serves a controlled identifier document describing the storage";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/storage-service-property> , <https://example.org/touchstone/req/lws10-core/storage-description-storageroot-service> , <https://example.org/touchstone/req/lws10-core/storage-capability-type-required> , <https://example.org/touchstone/req/lws10-core/storage-description-lws-cid> , <https://example.org/touchstone/req/lws10-core/lws-cid-media-type-storage-description> , <https://example.org/touchstone/req/lws10-core/storage-service-type-required> , <https://example.org/touchstone/req/lws10-core/storage-uri-returns-lws-cid-document> , <https://example.org/touchstone/req/lws10-core/storage-description-id-required> , <https://example.org/touchstone/req/lws10-core/storage-description-type-storage> , <https://example.org/touchstone/req/lws10-core/storage-service-endpoint-required> .

<https://example.org/touchstone/test/lws10/core/containers#getContainer>
        a                    earl:TestCase;
        dcterms:title        "Reading a container returns its listing with an ETag and the required links";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/link-storage-on-responses> , <https://example.org/touchstone/req/lws10-core/container-representation-required-properties> , <https://example.org/touchstone/req/lws10-core/containment-rel-up-get-head> , <https://example.org/touchstone/req/lws10-core/read-type-distinction-metadata-links> , <https://example.org/touchstone/req/lws10-core/read-container-etag-type-links> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#getContainer-authenticated-owner>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-container>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#updateDataResource-unauthorized>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-key-not-for-authentication>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-stops-after-revocation>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#delete-updates-parent-strong-etag>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-iat>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential without iat is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/iat-claim> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-updates-container-etags>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-client>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-expires-supported>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-scope-data-resource-only>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-response>
] .

<https://example.org/touchstone/test/lws10/core/containers#getContainer-containmentIntegrity>
        a                    earl:TestCase;
        dcterms:title        "A created resource appears in its container's listing with its required members";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/container-empty-items-array> , <https://example.org/touchstone/req/lws10-core/contained-format-for-dataresources> , <https://example.org/touchstone/req/lws10-core/contained-description-required-members> , <https://example.org/touchstone/req/lws10-core/container-listing-authorization-visibility> , <https://example.org/touchstone/req/lws10-core/containment-create-atomic-items> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-create>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-delete-rejected>
        a                    earl:TestCase;
        dcterms:title        "A valid token without permission cannot delete, and gets 403";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-policy-denial-rejected> , <https://example.org/touchstone/req/lws10-core/delete-401-403-404-semantics> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#containment-hierarchy-consistent>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-up-not-redirected>
        a                    earl:TestCase;
        dcterms:title        "Editing a linkset cannot make a resource's rel=\"up\" name anything but its parent";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/containment-rel-up-get-head> , <https://example.org/touchstone/req/lws10-core/move-destination-existing-container> , <https://example.org/touchstone/req/lws10-core/move-server-support> .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-deactivated>
        a                    earl:TestCase;
        dcterms:title        "A subscription whose inbox keeps refusing deliveries is deactivated";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/delivery-deactivation-optional> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-too-complex>
        a                    earl:TestCase;
        dcterms:title        "A filter beyond the server's limit is refused with 422, never narrowed";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/no-silent-narrowing> , <https://example.org/touchstone/req/lws10-index/too-complex-422> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-reflects-delete>
        a                    earl:TestCase;
        dcterms:title        "After a resource is deleted, the search stops returning it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/reflect-change-bounded> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-type-from-content>
        a                    earl:TestCase;
        dcterms:title        "A type declared only in the resource's Turtle is searchable";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/types-from-content> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraints-all-satisfied>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#patch-json-patch-baseline>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "the target does not declare SamlTrust";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-invalid-signature>
] .

<https://example.org/touchstone/test/lws10/core/pagination#pagination-next-page>
        a                    earl:TestCase;
        dcterms:title        "Following rel=\"next\" yields a further page of the same container, without the first page's members";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-200-totalitems-all-pages> , <https://example.org/touchstone/req/lws10-core/pagination-link-first> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-not-yet-valid-rejected>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-alg-none>
        a                    earl:TestCase;
        dcterms:title        "An unsigned (alg none) did:key credential is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/alg-not-none> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-alg-none>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-by-type>
        a                    earl:TestCase;
        dcterms:title        "A search on one type returns a ContainerPage with the resource that bears it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/reflect-change-bounded> , <https://example.org/touchstone/req/lws10-index/type-filter> , <https://example.org/touchstone/req/lws10-index/result-item-id-type> , <https://example.org/touchstone/req/lws10-index/search-default-containerpage> , <https://example.org/touchstone/req/lws10-index/type-key-supported> , <https://example.org/touchstone/req/lws10-index/baseline-format-supported> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'the search response names a result resource (otherwise this test does not apply)' does not hold: header Content-Location present expected present, got absent";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-content-location-protected>
] .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-authenticated-agent>
        a                    earl:TestCase;
        dcterms:title        "A read grant to one agent lets that agent read, and no more";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-policy-denial-rejected> , <https://example.org/touchstone/req/lws10-core/policy-action-values> .

<https://example.org/touchstone/test/lws10/core/data_resources#createDataResource>
        a                    earl:TestCase;
        dcterms:title        "POST to a container creates a data resource with Location and the server-managed links";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/get-data-resource-content-range-etag> , <https://example.org/touchstone/req/lws10-core/create-linkset-before-success> , <https://example.org/touchstone/req/lws10-core/create-post-201-location-links> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraints-all-satisfied>
        a                    earl:TestCase;
        dcterms:title        "A grant's constraints must all be satisfied before it permits access";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-objects> , <https://example.org/touchstone/req/lws10-core/policy-constraint-left-operands> , <https://example.org/touchstone/req/lws10-core/policy-constraints-conjunction-semantics> , <https://example.org/touchstone/req/lws10-core/policy-constraints-all-satisfied> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#updateDataResource>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#delete-updates-parent-strong-etag>
        a                    earl:TestCase;
        dcterms:title        "A container's strong entity tag changes when a member is deleted";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/delete-removes-from-parent-listing> , <https://example.org/touchstone/req/lws10-core/containment-delete-atomic-items> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#getContainer>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-container-304>
        a              earl:TestCase;
        dcterms:title  "An unchanged container listing answers a conditional GET with 304" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-missing-content-type-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#data-resource-head-parity>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-issued-token-accepted-by-storage>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-patch-preserves-server-links>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#deleteDataResource>
] .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-unadvertised-type-refused>
        a                    earl:TestCase;
        dcterms:title        "A subscription request whose type the NotificationService does not advertise is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/subscription-request-type> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-write-rejected>
        a                    earl:TestCase;
        dcterms:title        "A valid token without write permission can neither replace nor create";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-policy-denial-rejected> .

<https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-valid-assertion>
        a                    earl:TestCase;
        dcterms:title        "A valid SAML assertion is exchanged for an access token naming its subject";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-saml/validation-signature> , <https://example.org/touchstone/req/lws10-authn-saml/audience-restriction> , <https://example.org/touchstone/req/lws10-authn-saml/signed-and-required-assertions> , <https://example.org/touchstone/req/lws10-authn-saml/recipient-client-id> , <https://example.org/touchstone/req/lws10-authn-saml/issuer-assertion> , <https://example.org/touchstone/req/lws10-authn-saml/nameid-subject> , <https://example.org/touchstone/req/lws10-authn-saml/token-type-saml2> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-type>
        a                    earl:TestCase;
        dcterms:title        "A type constraint lets a grant reach only resources of the given type";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-left-operands> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#error-problem-details>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-304>
        a                    earl:TestCase;
        dcterms:title        "An unchanged data resource answers a conditional GET with 304";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conditional-requests-supported> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-token-types>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#protected-resource-metadata>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#createDataResource-unauthorized>
        a                    earl:TestCase;
        dcterms:title        "An anonymous POST is refused with 401 and creates nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-401-www-authenticate-challenge> .

<https://example.org/touchstone/test/lws10/core/moving#move-container-into-itself-refused>
        a                    earl:TestCase;
        dcterms:title        "A container cannot be moved into itself or into a container it holds";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/move-containment-integrity-cycles> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#createDataResource-type-link>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#create-server-managed-links-protected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-delivery-lws-json>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-needs-create-in-destination>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#getContainer-containmentIntegrity>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-unknown-kid>
        a                    earl:TestCase;
        dcterms:title        "A credential whose kid names no verification method is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-not-delivered-for-unreadable-resource>
        a                    earl:TestCase;
        dcterms:title        "A subscriber hears nothing about a resource inside its topic that it cannot read";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/privacy-notification-authorized-resources-only> , <https://example.org/touchstone/req/lws10-core/security-notification-access-control> , <https://example.org/touchstone/req/lws10-core/subscription-authorization-on-delivery> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#getContainer-authenticated-owner>
        a                    earl:TestCase;
        dcterms:title        "The owner's valid access token reads the protected container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-validation-checklist> , <https://example.org/touchstone/req/lws10-core/authz-bearer-presentation-rfc6750> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#data-resource-range-request>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#createDataResource-unauthorized>
] .

<https://example.org/touchstone/test/lws10/core/conditional_requests#update-changes-strong-etag>
        a              earl:TestCase;
        dcterms:title  "A strong entity tag changes when the content changes" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#delete-non-empty-container-409>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#container-head-parity>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-subject>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential without a sub claim is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> , <https://example.org/touchstone/req/lws10-core/authn-credential-tamper-evident-claims> , <https://example.org/touchstone/req/lws10-core/authn-subject-claim-uri> .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-after-revocation-refused>
        a                    earl:TestCase;
        dcterms:title        "Once a grant is revoked, the agent it named can no longer subscribe to the resource";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/security-notification-access-control> , <https://example.org/touchstone/req/lws10-core/subscription-authorization-on-create> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-type-from-content>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "the target does not declare SamlTrust";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-unsigned>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-removed-with-resource>
        a                    earl:TestCase;
        dcterms:title        "Deleting a resource removes its linkset";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/linkset-server-managed-atomic> , <https://example.org/touchstone/req/lws10-core/linkset-lifecycle-tied-to-resource> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-expired>
        a                    earl:TestCase;
        dcterms:title        "An expired credential is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-exp-in-future> .

<https://example.org/touchstone/test/lws10/core/access_grants#container-listing-filtered-metadata>
        a                    earl:TestCase;
        dcterms:title        "A listing filtered by authorization still gives each member it shows its core metadata";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/read-container-listing-authz-filtered> .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-missing-azp>
        a                    earl:TestCase;
        dcterms:title        "An ID Token without azp is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-client-claim> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-azp-claim> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-valid-credential>
        a                    earl:TestCase;
        dcterms:title        "A valid self-issued credential is exchanged for an access token naming its subject";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/iss-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/token-type-jwt> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/exp-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/iat-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/aud-includes-as> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-dereference-sub-cid> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/client-id-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-exp-in-future> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/linksets#linkset-ready-at-create>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#readDataResource>
] .

<https://example.org/touchstone/test/lws10/core/containers#container-conneg>
        a                    earl:TestCase;
        dcterms:title        "A container asked for as application/lws+json answers as application/lws+json";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/lws-json-media-type-container-representation> , <https://example.org/touchstone/req/lws10-core/conneg-lws-json-honored> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-left-operands-accepted>
        a                    earl:TestCase;
        dcterms:title        "A server advertising the Access Profile accepts a grant constrained by each leftOperand it must support";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-objects> , <https://example.org/touchstone/req/lws10-core/policy-constraint-left-operands> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-invalid-signature>
        a                    earl:TestCase;
        dcterms:title        "A did:key credential with a corrupted signature is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

<https://example.org/touchstone/test/lws10/core/storage_authorization#storage-root-same-origin>
        a                    earl:TestCase;
        dcterms:title        "The storage a 401 links to has its storage root on the requested URI's origin";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-401-storage-link> , <https://example.org/touchstone/req/lws10-core/authz-client-storage-root-same-origin> .

<https://example.org/touchstone/test/lws10/core/data_resources#deleteDataResource>
        a                    earl:TestCase;
        dcterms:title        "DELETE removes a data resource with 204 and takes it out of its container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/status-204-410-deletions> , <https://example.org/touchstone/req/lws10-core/containment-delete-atomic-items> , <https://example.org/touchstone/req/lws10-core/delete-success-204-conditional> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-index-not-shared>
] .

<https://example.org/touchstone/test/lws10/core/notifications#notification-scope-data-resource-only>
        a                    earl:TestCase;
        dcterms:title        "A subscription to a data resource hears nothing about its siblings";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-object-id> , <https://example.org/touchstone/req/lws10-core/notification-activity-types-supported> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-unindexed-relation>
        a                    earl:TestCase;
        dcterms:title        "An unindexed relation and an unmatched relation target both yield an empty result";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/no-match-not-error> , <https://example.org/touchstone/req/lws10-index/relations-may-be-indexed> , <https://example.org/touchstone/req/lws10-index/unindexed-relation-indistinguishable> .

<https://example.org/touchstone/test/lws10/core/containers#container-lws-profile-ld-json>
        a                    earl:TestCase;
        dcterms:title        "A container asked for as JSON-LD in the LWS profile answers with the same RDF as application/lws+json";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conneg-lws-profile-isomorphic> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#contained-resource-type-values>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signature-components>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-revoked-not-shown>
        a                    earl:TestCase;
        dcterms:title        "Once a grant is revoked, the search stops returning what it gave access to";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/derived-index-filtered> , <https://example.org/touchstone/req/lws10-index/consistency-not-for-authorization> , <https://example.org/touchstone/req/lws10-index/current-authorization> , <https://example.org/touchstone/req/lws10-index/revoked-not-shown> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-alg-none>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#error-problem-details>
        a                    earl:TestCase;
        dcterms:title        "An error response carries RFC 9457 problem details";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/error-rfc9457-problem-details> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-revoked-not-shown>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-audience-excludes-as>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-expired-token-rejected>
] .

<https://example.org/touchstone/test/lws10/core/pagination#pagination-last-page>
        a                    earl:TestCase;
        dcterms:title        "The last page has rel=\"first\" and no rel=\"next\"";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-link-first> , <https://example.org/touchstone/req/lws10-core/pagination-link-next> , <https://example.org/touchstone/req/lws10-core/pagination-link-last> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-malformed-json-rejected>
        a                    earl:TestCase;
        dcterms:title        "A body that is not well-formed JSON is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/malformed-filter-400> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-alg-none-rejected>
] .

<https://example.org/touchstone/test/lws10/core/containers#container-conneg-vary>
        a                    earl:TestCase;
        dcterms:title        "Container responses say that they vary by Accept";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/conneg-vary-accept> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/storage_authorization#authz-token-issued-in-future-rejected>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-valid-id-token>
] .

<https://example.org/touchstone/test/lws10/core/containers#container-total-items-accurate>
        a                    earl:TestCase;
        dcterms:title        "totalItems tracks the members as they are created and deleted";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/container-totalitems-accuracy> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-signing-key-published>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-content-types-identical>
        a                    earl:TestCase;
        dcterms:title        "A type taken from content is filtered by authorization and listed in the type index like one from a Link header";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/content-types-identical> .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-invalid-resource>
        a                    earl:TestCase;
        dcterms:title        "Token exchange for an unknown storage is refused with an OAuth error";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-error-rfc6749> , <https://example.org/touchstone/req/lws10-core/authz-token-exchange-resource-param> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/pagination#pagination-first-page>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-issuer>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-foreign-controller>
        a                    earl:TestCase;
        dcterms:title        "A credential signed with a verification method another identifier controls is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-valid-id-token>
        a                    earl:TestCase;
        dcterms:title        "A valid ID Token is exchanged for an access token naming its subject";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-openid/validation-locate-issuer-service-and-verify> , <https://example.org/touchstone/req/lws10-authn-openid/validation-dereference-subject-cid> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-aud-claim> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-azp-claim> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-iss-claim> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-sub-claim> , <https://example.org/touchstone/req/lws10-authn-openid/id-token-token-type-uri> .

<https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-bad-signature>
        a                    earl:TestCase;
        dcterms:title        "An ID Token with a corrupted signature is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-openid/validation-locate-issuer-service-and-verify> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-alg-none>
        a                    earl:TestCase;
        dcterms:title        "An unsigned (alg none) credential is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-reject-alg-none> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/alg-not-none> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-structural-relation-not-indexed>
        a                    earl:TestCase;
        dcterms:title        "A structural relation such as up is not indexed";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/unindexed-relation-indistinguishable> , <https://example.org/touchstone/req/lws10-index/structural-relations-not-indexed> .

<https://example.org/touchstone/test/lws10/core/notifications#subscription-missing-topic-refused>
        a                    earl:TestCase;
        dcterms:title        "A subscription request without a topic is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/subscription-request-topic> , <https://example.org/touchstone/req/lws10-core/subscription-request-required-fields> .

<https://example.org/touchstone/test/lws10/core/pagination#pagination-single-page>
        a                    earl:TestCase;
        dcterms:title        "A paginated listing that holds every member on one page has neither rel=\"next\" nor rel=\"prev\"";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/pagination-link-first> , <https://example.org/touchstone/req/lws10-core/pagination-link-prev> , <https://example.org/touchstone/req/lws10-core/pagination-link-next> .

<https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-client>
        a                    earl:TestCase;
        dcterms:title        "A client constraint withholds a grant from every other client application";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-constraint-left-operands> .

<https://example.org/touchstone/test/lws10/auth/saml/manifest#authn-saml-unsigned>
        a                    earl:TestCase;
        dcterms:title        "An unsigned SAML assertion is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authn-credential-signed> , <https://example.org/touchstone/req/lws10-authn-saml/signed-and-required-assertions> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-delete-stale-if-match-412>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-valid>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#patch-json-patch-atomic>
        a                    earl:TestCase;
        dcterms:title        "A JSON Patch whose test operation fails changes nothing";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/patch-json-patch-baseline> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description-ids-are-uris>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-referenced-method>
        a                    earl:TestCase;
        dcterms:title        "A credential whose authentication method is referenced by id, not embedded, is accepted";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-dereference-sub-cid> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> .

<https://example.org/touchstone/test/lws10/core/moving#move-needs-delete-of-resource>
        a                    earl:TestCase;
        dcterms:title        "An agent who may not delete a resource cannot move it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/security-move-privilege-combination> , <https://example.org/touchstone/req/lws10-core/move-authorization-delete-and-create> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-empty-group-rejected>
] .

<https://example.org/touchstone/test/lws10/core/linksets#linkset-advertises-patch>
        a                    earl:TestCase;
        dcterms:title        "A linkset advertises GET and PATCH in Allow and JSON Patch in Accept-Patch";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/metadata-capability-advertising> , <https://example.org/touchstone/req/lws10-core/linkset-accept-patch-json-patch> , <https://example.org/touchstone/req/lws10-core/linkset-allow-get-patch> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-constraint-format>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-content-location-protected>
        a                    earl:TestCase;
        dcterms:title        "A search result resource named by Content-Location does not hand alice's results to bob";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/content-location-protected> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/data_resources#data-resource-range-unsatisfiable>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-type-not-array-rejected>
        a                    earl:TestCase;
        dcterms:title        "A type that is not an array is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/malformed-filter-400> .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-bad-element-rejected>
        a                    earl:TestCase;
        dcterms:title        "A type element that is not a string or array of strings is rejected with 400";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/grammar-not-extended> , <https://example.org/touchstone/req/lws10-index/malformed-filter-400> .

<http://127.0.0.1:41427/lws/harness/>
        a              earl:TestSubject;
        dcterms:title  "target 'sut'" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-authorization-filtered>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description-default-media-type>
] .

<https://example.org/touchstone/test/lws10/core/containers#containment-hierarchy-consistent>
        a                    earl:TestCase;
        dcterms:title        "Down a nested chain, each resource's up link names its container and each container lists it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/containment-no-orphans> , <https://example.org/touchstone/req/lws10-core/containment-integrity> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-subject>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-request-create>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:info     "precondition 'a search names its first page (otherwise this test does not apply)' does not hold: Link rel=\"first\" expected a matching link, got no Link";
                     earl:outcome  earl:inapplicable
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-unrecognized-page-link>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-accept-query-advertised>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-304>
] .

<https://example.org/touchstone/test/lws10/core/authorization_server#authz-server-metadata-well-known>
        a                    earl:TestCase;
        dcterms:title        "The authorization server publishes RFC 8414 metadata at lws-configuration";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-token-exchange-grant> , <https://example.org/touchstone/req/lws10-core/authz-server-metadata-well-known> .

<https://example.org/touchstone/test/lws10/core/data_resources#updateDataResource>
        a                    earl:TestCase;
        dcterms:title        "PUT replaces a data resource's content, answering 200 or 204";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/update-content-vs-metadata-prefer-set-linkset> .

<https://example.org/touchstone/test/lws10/core/notifications#notification-service-advertised>
        a                    earl:TestCase;
        dcterms:title        "A storage that supports notifications advertises a well-formed NotificationService";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notificationservice-endpoint-and-subscription-types> , <https://example.org/touchstone/req/lws10-core/notifications-advertise-notificationservice> .

<https://example.org/touchstone/test/lws10/core/moving#move-data-resource>
        a                    earl:TestCase;
        dcterms:title        "Patching a data resource's up link moves it to the other container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/capability-move-resource> , <https://example.org/touchstone/req/lws10-core/containment-integrity-move> , <https://example.org/touchstone/req/lws10-core/move-containment-atomic> , <https://example.org/touchstone/req/lws10-core/move-request-json-patch> , <https://example.org/touchstone/req/lws10-core/move-server-support> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-iat>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-index-not-shared>
        a                    earl:TestCase;
        dcterms:title        "A type index response is marked against reuse across clients";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/no-shared-cache> , <https://example.org/touchstone/req/lws10-index/responses-private> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-token-types-are-uris>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-invalid-signature>
] .

<https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-get-delete>
        a                    earl:TestCase;
        dcterms:title        "A webhook subscription supports GET for its state and DELETE to cancel it";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-listing-container> , <https://example.org/touchstone/req/lws10-notifications-webhook/subscription-get-delete> .

<https://example.org/touchstone/test/lws10/core/access_grants#getContainer-public-read>
        a                    earl:TestCase;
        dcterms:title        "A container granted to the public can be read without credentials";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/policy-assignee-uri-foaf-agent> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-next-page>
] .

<https://example.org/touchstone/test/lws10/core/data_resources#data-resource-accept-ranges>
        a              earl:TestCase;
        dcterms:title  "A data resource advertises byte ranges with Accept-Ranges" .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/moving#move-invalid-destination-refused>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/oidc/manifest#authn-oidc-untrusted-issuer>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/discovery#discovery-unauthorized-response-headers>
] .

<https://example.org/touchstone/test/lws10/index/manifest#type-search-empty-key-absent>
        a                    earl:TestCase;
        dcterms:title        "A filter key whose whole value is an empty array is no constraint";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-index/type-filter> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#readDataResource-public-read>
] .

<https://example.org/touchstone/test/lws10/core/storage_authorization#authz-non-owner-read-rejected>
        a                    earl:TestCase;
        dcterms:title        "A valid token without read permission is refused, not challenged";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/authz-policy-denial-rejected> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/index/manifest#type-search-unsupported-format-accept-query>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/conditional_requests#conditional-get-if-unmodified-since-412>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-get-delete>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#subscription-after-revocation-refused>
] .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-expired>
        a                    earl:TestCase;
        dcterms:title        "An expired did:key credential is refused";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-exp-in-future> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/containers#contained-resource-size-modified>
] .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-unauthorized-response-headers>
        a                    earl:TestCase;
        dcterms:title        "A 401 from a protected resource links to the storage";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-401-storage-link> , <https://example.org/touchstone/req/lws10-core/authz-401-storage-link> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-token-exchange-invalid-resource>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-incomplete-refused>
] .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-storage-description-ids-are-uris>
        a                    earl:TestCase;
        dcterms:title        "Optional service and capability ids in the storage description are URIs";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/storage-capability-property> , <https://example.org/touchstone/req/lws10-core/storage-capability-id-optional> , <https://example.org/touchstone/req/lws10-core/storage-service-id-optional> .

<https://example.org/touchstone/test/lws10/core/data_resources#create-in-missing-container-404>
        a                    earl:TestCase;
        dcterms:title        "POST to a container that does not exist yields 404";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/create-post-missing-container-404> .

<https://example.org/touchstone/test/lws10/core/discovery#discovery-link-storage-on-data-resource>
        a                    earl:TestCase;
        dcterms:title        "GET and HEAD of a data resource link to the same storage as its container";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/link-storage-on-responses> , <https://example.org/touchstone/req/lws10-core/storage-description-link-header> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-missing-client-id>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-create>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/notifications/webhook/manifest#webhook-subscription-listed>
] .

<https://example.org/touchstone/test/lws10/core/moving#move-refused-without-capability>
        a                    earl:TestCase;
        dcterms:title        "A storage that describes no MoveResource capability refuses to move a resource";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/capability-move-resource> , <https://example.org/touchstone/req/lws10-core/move-server-support> .

<https://example.org/touchstone/test/lws10/auth/cid/manifest#authn-cid-didkey-valid-credential>
        a                    earl:TestCase;
        dcterms:title        "A valid did:key credential is exchanged for an access token naming its subject";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/token-type-jwt> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/aud-includes-as> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/iat-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-dereference-sub-cid> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-exp-in-future> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-kid-verification-method> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/client-id-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/sub-iss-client-same-uri> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/exp-claim> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/validation-all-claims> , <https://example.org/touchstone/req/lws10-authn-ssi-cid/iss-claim> .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/access_grants#access-grant-revoke>
] .

[ a                earl:Assertion;
  earl:assertedBy  <https://example.org/touchstone/harness>;
  earl:mode        earl:automatic;
  earl:result      [ a             earl:TestResult;
                     dcterms:date  "2026-10-21T13:18:22.856960779Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
                     earl:outcome  earl:passed
                   ];
  earl:subject     <http://127.0.0.1:41427/lws/harness/>;
  earl:test        <https://example.org/touchstone/test/lws10/core/authorization_server#authz-metadata-subject-identifier-types>
] .

<https://example.org/touchstone/test/lws10/core/notifications#notification-delivered-in-subcontainer>
        a                    earl:TestCase;
        dcterms:title        "A subscription to a container reaches a resource created in a subcontainer";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/notification-activity-object-id> , <https://example.org/touchstone/req/lws10-core/notification-activity-types-supported> .

<https://example.org/touchstone/test/lws10/core/data_resources#data-resource-range-request>
        a                    earl:TestCase;
        dcterms:title        "A data resource serves byte ranges with 206";
        touchstone:verifies  <https://example.org/touchstone/req/lws10-core/get-data-resource-content-range-etag> .
