# Resolution & Lookup Rules
This page describes how Nyl resolves component resources into charts.
## Local Lookup
For Component resources with local kinds, Nyl checks component search roots in order:
1. Resolve `project.components_search_paths` from `nyl.toml`.
2. Build candidate path `<root>/<kind>/Chart.yaml`.
3. Use the first existing match.
For `kind: example/v1/Nginx`, Nyl looks for:
```text
<root>/example/v1/Nginx/Chart.yaml
```
Relative search paths are resolved relative to the directory containing `nyl.toml`.
## Search Path Precedence
`components_search_paths = ["components", "/opt/shared-components"]` means:
1. Prefer repo-local components under `components/`.
2. Fall back to `/opt/shared-components`.
The first matching component wins.
## Alias Resolution
Before local lookup, Nyl checks `project.aliases` for a `<apiVersion>/<kind>` match.
If an alias exists, the alias target is resolved directly and local lookup is skipped for that resource.
Example:
```toml
[project.aliases]
"platform.example.io/v1/IngressStack" = "oci://registry-1.docker.io/bitnamicharts/nginx@18.2.4"
```
## Expansion and Filtering Caveat
`-c/--component` filters top-level input resources before expansion.
Example:
- `-c ConfigMap` does not include ConfigMaps generated by Component or HelmChart expansion.
- Use `-c HelmChart` or match the component resource in input when you need those expansions.