{"adoption": {"forks": 52, "observed_at": "2026-08-28T04:03:58.761355+00:00", "stars": 1204}, "canonical_url": "https://ross.abutalabs.com/products/tim-maes-facet", "card": {"archived": false, "artifact_type": "library", "description": "Generate DTOs, mappings, constructors and LINQ projections from your domain models.", "domain": ["backend", "web-development", "developer-tools"], "enriched": true, "function": ["serialization", "developer-tools"], "health_score": 99, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Tim-Maes/Facet"], "name": "Tim-Maes/Facet", "platform": ["dotnet", "cross-platform"], "pushed_at": "2026-08-25T07:50:30+00:00", "repo": "Tim-Maes/Facet", "stars": 1204, "tags": ["source-generator", "dto", "object-mapping", "linq-projection", "compile-time", "csharp", "boilerplate-elimination"], "topics": ["facet", "generator", "mapper", "mapping", "model", "object", "source"], "urls": [], "use_cases": ["generate DTOs from domain models without boilerplate", "create LINQ projections for efficient database queries", "map domain models to API response models", "exclude sensitive fields from public API models", "generate reverse mappings from DTOs back to domain models", "create admin and public views of the same entity"], "what_it_is": "Facet is a C# source generator that eliminates DTO boilerplate by generating DTO types, constructors, LINQ projections, and reverse mappings from domain models at compile time. It supports classes, records, structs, nested mapping, custom mapping configurations, and preserves XML docs and validation attributes with zero runtime overhead.", "when_to_avoid": ["you are not on the .NET/C# ecosystem", "you prefer runtime mapping libraries like AutoMapper with dynamic configuration", "your project does not use source generators or Roslyn"], "when_to_choose": ["you write lots of manual DTO and mapping code in C#/.NET", "you want compile-time generation with zero runtime reflection overhead", "you need multiple projections of the same domain model for different audiences", "you use EF Core and want efficient query projections"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tim-maes-facet", "repo": "Tim-Maes/Facet", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.761355+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:19:38.558270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5046e2f0d346de8a455b3eafd7e5f98862ec36cc2c19197b45e4840beefc53b9", "fetched_at": "2026-08-28T04:03:58.761355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tim-Maes/Facet"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 35, "rhythm": 75}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 498, "days_push": 8, "days_rel": 85, "gap_med": 0, "n_releases_24m": 172}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}