 State { get; set; }         }          private class TestMetadata0MatcherPolicy : MatcherPolicy, IEndpointComparerPolicy, INodeBuilderPolicy         {             public override int Order => 000;              public IComparer<Endpoint> Comparer => EndpointMetadataComparer<TestMetadata0>.Default;              public bool AppliesToEndpoints(IReadOnlyList<Endpoint> endpoints)             {                 return endpoints.Any(e => e.Metadata.GetMetadata<TestMetadata0>() != null);             }              public PolicyJumpTable BuildJumpTable(int exitDestination, IReadOnlyList<PolicyJumpTableEdge> edges)             {                 throw new NotImplementedException();             }              public IReadOnlyList<PolicyNodeEdge> GetEdges(IReadOnlyList<Endpoint> endpoints)             {                 return endpoints                     .GroupBy(e => e.Metadata.GetMetadata<TestMetadata0>().State)                     .Select(g => new PolicyNodeEdge(g.Key, g.ToArray()))                     .ToArray();             }         }          private class TestMetadata0         {             public TestMetadata0()             {             }              public TestMetadata0(