Just in terms of readability, it might make sense to move ArtifactConfig to be the last CR in your list of CRs. The ArtifactStream and ArtifactCollection (and its stream) are more primitive. It's easier to try to understand what the ArtifactConfig might be representing once you know about those other pieces.
I am closing this proposed ADR. I think that we still need something to replace Components and Applications but the current proposal will not be sufficient for our use cases.
Just in terms of readability, it might make sense to move ArtifactConfig to be the last CR in your list of CRs. The ArtifactStream and ArtifactCollection (and its stream) are more primitive. It's easier to try to understand what the ArtifactConfig might be representing once you know about those other pieces.