When you request a resource, the server returns a result that contains a contents list. You access the first element since you typically only need one resource at a time. The response includes the actual content, which can be text or binary data, a MIME type that tells you how to parse the content, and other metadata about the resource. Your job in the client is to read that MIME type, decide how to parse the content accordingly, and return a useful Python value to your application. The list structure exists because the protocol allows for multiple content blocks, but most implementations only need the first one.