Why does the Attachment endpoint have different fields for Artifact and for TestCaseResult. Is TestCaseResult not an artifact?
Here are the field's definitions under the Attachment endpoint:
TestCaseResult is not an Artifact.
We can see that in the TestCaseResult endpoint definition:
As you see above the TestCaseResult endpoint inherits from a WorkspaceDomainObject, not from Artifact. All other artifacts including TestCase, Defect, HierarchicalRequirement (user story) and more , they all inherit from the Artifact endpoint.
TestCaseResult is therefore kept as a separate field on the attachment object. If that attachment is linked with the artifact then the object's reference will be stored in the Artifact field. However, if the attachment is linked to a TestCaseResult, then the object reference will be stored under the TestCaseResult field instead.